home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 13 / AMIGAplus Sonderheft 13 (1998)(ICP)(DE)[!].iso / rexx / cmdshell.bed < prev    next >
Text File  |  1997-12-03  |  1KB  |  83 lines

  1. /*
  2. ** $VER: CmdShell.bed 1.0 (02.01.96)
  3. **
  4. ** Run the BED command shell
  5. **
  6. ** Modified by Marco Negri
  7. */
  8.  
  9. OPTIONS RESULTS
  10. OPTIONS FAILAT 100
  11. OPTIONS PROMPT "BED> "
  12.  
  13. SAY
  14. SAY ' Enter a BED command or:'
  15. SAY ' - Help <command>'
  16. SAY ' - GetTemplate <command>'
  17. SAY
  18.  
  19. DO FOREVER
  20.     PARSE PULL cmdString
  21.  
  22.     SELECT
  23.         WHEN (cmdString = "") | (UPPER(cmdString) = "Q") | (UPPER(cmdString) = "QUIT") THEN DO
  24.             LEAVE
  25.         END
  26.  
  27.         WHEN (cmdString = "?") THEN DO
  28.             SAY 'Enter "Help <command>" to obtain a command''s help'
  29.             SAY 'Enter "GetTemplate <command>" to obtain the command''s template'
  30.             SAY 'Enter CTRL-\ to close this window.'
  31.         END;
  32.  
  33.         OTHERWISE DO
  34.             CALL HandleCmd(cmdString)
  35.         END;
  36.     END
  37. END
  38.  
  39. RETURN
  40.  
  41.  
  42. HandleCmd: PROCEDURE
  43. PARSE ARG cmdString
  44.  
  45.     cmdString
  46.  
  47.     IF RC = 0 THEN DO
  48.         IF symbol('RESULT') == "VAR" THEN DO
  49.             SAY RESULT
  50.         END
  51.         RETURN
  52.     END;
  53.  
  54.     IF BED.LASTERROR = 29 THEN DO
  55.  
  56.         ADDRESS REXX cmdString
  57.  
  58.         IF RC > 0 THEN DO
  59.             ADDRESS COMMAND cmdString
  60.         END
  61.     END
  62.  
  63.     IF RC > 0 THEN DO
  64.  
  65.         last        = BED.LASTERROR
  66.         special = BED.SPECIALERROR
  67.  
  68.         GetErrorInfo last
  69.         SAY '*** General Error #'last'; 'RESULT
  70.  
  71.         IF special ~= 0 THEN DO
  72.             IF last = 36 THEN
  73.                 msg = ERRORTEXT(special)
  74.             ELSE DO
  75.                 GetErrorInfo last special
  76.                 msg = RESULT
  77.             END
  78.  
  79.             SAY '*** Special Error #'special'; 'msg
  80.         END
  81.     END
  82. RETURN
  83.